package world.xuewei.dao;

import world.xuewei.model.entity.Address;
import world.xuewei.model.entity.Orders;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 订单主表(Orders)表数据库访问层
 *
 * @author makejava
 * @since 2024-11-16 15:40:07
 */
public interface OrdersDao {



    /**
     * 根据订单号查询订单详情
     */
    Orders getOrderDetail(String orderNumber);


    /**
     * 查询用户的订单列表
     */
    List<Orders> queryByUserId(@Param("userId") Long userId,
                               @Param("status") Integer status);



    /**
     * 查询商家的订单列表
     */
    List<Orders> queryByMerchantId(@Param("merchantId") Long merchantId,
                                   @Param("status") Integer status);


     /**
     * 加载订单的收货地址信息
     */
    Address loadOrderAddress(Long addressId);


    int validateMerchantPermission(@Param("orderNumber") String orderNumber,
                                   @Param("merchantId") Long merchantId);







    /**
     * 新增数据
     *
     * @param orders 实例对象
     * @return 影响行数
     */
    int insert(Orders orders);





    /**
     * 修改数据
     *
     * @param orders 实例对象
     * @return 影响行数
     */
    int update(Orders orders);



}

